


#include "user_flash.h"
#include <stdlib.h>
#include <sys/reboot.h>
#include <unistd.h>

#include  "system.h"



// uint16_t system_get_ver(void)
// {
//     return CCT_FW_VER;
// }






//重启整个顶板
int SystemReboot(void)
{
   // way 2 
   sync(); 
  
   sleep(1);
   sync(); //
   sleep(1);

   return reboot(RB_AUTOBOOT);
}




//重启应用程序
void SystemStop(void)
{
   ////-------ver.4.30------------------------

   // way 2 
   sync(); 
  
   sleep(1);
   sync(); //
   sleep(1);
   
    system(STOP_SHELL_PATH); 

}




//复位南向应用程序
int SystemReboot_south(void)
{
  return system(STOP_SOUTH_SHELL_PATH); 
}


//异步：重启系统
int AsyncReboot(void)
{
   pid_t pid = fork();

   if (pid < 0) {
      perror("fork() failed");
      return -1;
   } else if (pid == 0) {
      // 子进程：1秒后执行重启
      sleep(1);
      sync(); // 防止数据丢失
      reboot(RB_AUTOBOOT);
      exit(EXIT_FAILURE);
   } else {
      // 父进程：继续执行其他逻辑
      return 0;
   }
}

